package com.algorithm2;

import java.util.Arrays;

public class SelectionSort2 {

    public static void main(String[] args){
        int[] array = new int[]{4,6,8,7,1,3,5,2};
        int[] result = sort(array);
        System.out.println("result:"+Arrays.toString(result));
    }

    /**
     * 分为已排好数据，未排好数据区域
     * 每次遍历选择最大/最小的数据放置到已排好数据区域的后边
     * @param array
     * @return
     */
    public static int[] sort(int[] array){
        /**
         * 4,6,8,7,1,3,5,2
         *
         */
        //需要遍历几次？array.length-1次
        for(int i=0;i<array.length-1;i++){
            int min = i;
            //每次遍历均在i基础上往后遍历
            for(int j=i+1;j<array.length;j++){
                if(array[j]<array[min]){
                    min = j;
                }
            }
            if(min!=i){
                swap(array,i,min);
                System.out.println("第"+i+"次,result:"+ Arrays.toString(array));
            }

        }
        return array;
    }

    /**
     * 交换i,j
     * @param array
     * @param i
     * @param j
     */
    public static void swap(int[] array,int i,int j){
        if(i==j){
            return;
        }
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp ;

    }
}
